package css.sword.annotation.kafka;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

import org.apache.commons.lang.SerializationException;

/**
 * 
 *
 * @project 深圳智能政务办公系统
 * @package zhbg.oaxt.common.kafka
 * @file OAKafkaSerialization.java 创建时间:2018年12月6日下午2:43:55
 * @title 标题（要求能简洁地表达出类的功能和职责）
 * @description 描述（简要描述类的职责、实现方式、使用注意事项等）
 * @copyright Copyright (c) 2018 中国软件与技术服务股份有限公司
 * @company 中国软件与技术服务股份有限公司
 * @module 模块: 模块名称
 * @author  曹敏
 * @reviewer 审核人
 * @version 1.0
 * @history 修订历史（历次修订内容、修订人、修订时间等）
 *
 */
public class OAKafkaSerialization {
    /**
     * 
     *@name    中文名称
     *@description 相关说明
     *@time    创建时间:2018年12月6日下午2:44:02
     *@param obj 参数
     *@return 返回值
     *@author   曹敏
     *@history 修订历史（历次修订内容、修订人、修订时间等）
     */
    @SuppressWarnings("unused")
    public static byte[] serialize(Object obj) {
        final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(1024);
        if (byteArrayOutputStream == null) {
            throw new IllegalArgumentException("The OutputStream must not be null");
        } else {
            ObjectOutputStream objectOutputStream = null;

            try {
                objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
                objectOutputStream.writeObject(obj);
            } catch (IOException e) {
                throw new SerializationException("====redis序列化时错误====", e);
            } finally {
                try {
                    objectOutputStream.close();
                } catch (IOException e) {
                    throw new SerializationException("====redis序列化时错误====", e);
                }
            }
        }

        return byteArrayOutputStream.toByteArray();
    }
}
